from datetime import timedelta

from redis import StrictRedis
import logging


# 创建配置类,封装所有的配置
class Config:
    DEBUG = True  # 开启调试模式
    # 设置数据库的连接地址
    SQLALCHEMY_DATABASE_URI = 'mysql://root:mysql@127.0.0.1:3306/ll'
    # 设置是否开启数据库跟踪
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    # 设置redis ip
    REDIS_HOST = '127.0.0.1'
    # 设置redis 端口
    REDIS_PORT = 6379
    # 配置session的储存类型
    SESSION_TYPE = 'redis'
    # 设置redis操作对象
    SESSION_REDIS = StrictRedis(host=REDIS_HOST, port=REDIS_PORT)
    # 设置是否加密
    SESSION_USE_SIGNER = True
    # 设置秘钥
    SECRET_KEY = 'xhS02gJX3yg/ONpgVuugaTHywfx+QqirKoCZYd9jTVEOiJZH4ELHf8wkpLpUBL+0'
    # 设置过期时间,默认可以设置过期时间
    PERMANENT_SESSION_LIFETIME = timedelta(days=7)
    # 视图函数结束后会自动提交数据
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True


# 开发者环境,重写debug = true,继承其他配置
class DevelopmentConfig(Config):
    DEBUG = True
    LOG_LEVEL = logging.DEBUG  # 设置接收日志的等级


# 生产环境,重写debug = false ,继承其他配置
class ProductionConfig(Config):
    DEBUG = False
    LOG_LEVEL = logging.ERROR  # 设置接收日志的等级


# 　设置字典储存不同环境的配置类
config_dict = {
    'dev': DevelopmentConfig,
    'pro': ProductionConfig
}
